package com.alex.wechat.mp.account.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.annotations.GenericGenerator;

/**
 * 微信公众帐号信息
 * 
 * @author Debenson
 * @since 0.1
 */
@Entity
@Table(name = "wx_account", schema = "")
@XmlRootElement
public class WxAccountEntity implements java.io.Serializable {
  private static final long serialVersionUID = 7169528695697253576L;

  /** 主键 */
  private java.lang.String id;
  /** 公众帐号名称 */
  private java.lang.String name;
  /** 公众帐号TOKEN */
  private java.lang.String token;
  /** 公众微信号 */
  private java.lang.String number;
  /** 公众原始ID */
  private java.lang.String originalId;
  /** 公众号类型 */
  private java.lang.String type;
  /** 电子邮箱 */
  private java.lang.String email;
  /** 公众帐号描述 */
  private java.lang.String description;
  /** 公众帐号APPID */
  private java.lang.String appid;
  /** 公众帐号APPSECRET */
  private java.lang.String appsecret;
  /** ACCESS_TOKEN */
  private java.lang.String accesstoken;
  /** ACCESS TOKEN 失效时间 */
  private Long expiresTime = 0L;

  /** 微信卡券JS API的临时票据 */
  private java.lang.String apiticket;
  /** 微信卡券JS API的临时票据的获取时间 */
  private java.util.Date apiticketttime;

  /** jsapi调用接口临时凭证 */
  private java.lang.String jsapiticket;
  /** jsapi调用接口临时凭证的失效时间 */
  private Long jsapiTicketExpiresTime = 0L;

  private String partnerId;
  private String partnerKey;
  private String aesKey;
  private String oauth2redirectUri;
  private String cardApiTicket;
  private Long cardApiTicketExpiresTime = 0L;

  /** 第三方平台AppId */
  private java.lang.String componentAppId;

  /**
   * 商户id
   * 
   * @return
   */
  public String getPartnerId() {
    return partnerId;
  }

  public void setPartnerId(String partnerId) {
    this.partnerId = partnerId;
  }

  /**
   * 商户key
   * 
   * @return
   */
  public String getPartnerKey() {
    return partnerKey;
  }

  public void setPartnerKey(String partnerKey) {
    this.partnerKey = partnerKey;
  }

  /**
   * AES加密密钥。
   * 
   * @return
   */
  public String getAesKey() {
    return aesKey;
  }

  public void setAesKey(String aesKey) {
    this.aesKey = aesKey;
  }

  /**
   * ACCESS TOKEN过期时间。
   * 
   * @return
   */
  public Long getExpiresTime() {
    return expiresTime;
  }

  public void setExpiresTime(Long expiresTime) {
    this.expiresTime = expiresTime;
  }

  /**
   * @return
   */
  public String getOauth2redirectUri() {
    return oauth2redirectUri;
  }

  public void setOauth2redirectUri(String oauth2redirectUri) {
    this.oauth2redirectUri = oauth2redirectUri;
  }

  /**
   * @return
   */
  public Long getJsapiTicketExpiresTime() {
    return jsapiTicketExpiresTime;
  }

  public void setJsapiTicketExpiresTime(Long jsapiTicketExpiresTime) {
    this.jsapiTicketExpiresTime = jsapiTicketExpiresTime;
  }

  /**
   * @return
   */
  public String getCardApiTicket() {
    return cardApiTicket;
  }

  public void setCardApiTicket(String cardApiTicket) {
    this.cardApiTicket = cardApiTicket;
  }

  /**
   * @return
   */
  public Long getCardApiTicketExpiresTime() {
    return cardApiTicketExpiresTime;
  }

  public void setCardApiTicketExpiresTime(Long cardApiTicketExpiresTime) {
    this.cardApiTicketExpiresTime = cardApiTicketExpiresTime;
  }

  /**
   * @return
   */
  public java.lang.String getApiticket() {
    return apiticket;
  }

  public void setApiticket(java.lang.String apiticket) {
    this.apiticket = apiticket;
  }

  /**
   * @return
   */
  public java.util.Date getApiticketttime() {
    return apiticketttime;
  }

  public void setApiticketttime(java.util.Date apiticketttime) {
    this.apiticketttime = apiticketttime;
  }

  /**
   * @return
   */
  @Column(name = "jsapiticket", nullable = true, length = 1000)
  public java.lang.String getJsapiticket() {
    return jsapiticket;
  }

  public void setJsapiticket(java.lang.String jsapiticket) {
    this.jsapiticket = jsapiticket;
  }

  /**
   * 方法: 取得标识
   * 
   * @return 标识
   */
  @Id
  @GeneratedValue(generator = "paymentableGenerator")
  @GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
  @Column(name = "ID", nullable = false, length = 36)
  public java.lang.String getId() {
    return this.id;
  }

  /**
   * 方法: 设置标识
   * 
   * @param: java.lang.String
   *           标识
   */
  public void setId(java.lang.String id) {
    this.id = id;
  }

  /**
   * 方法: 取得公众帐号名称
   * 
   * @return: java.lang.String 公众帐号名称
   */
  @Column(name = "NAME", nullable = true, length = 100)
  public java.lang.String getName() {
    return this.name;
  }

  /**
   * 方法: 设置公众帐号名称
   * 
   * @param: java.lang.String
   *           公众帐号名称
   */
  public void setName(java.lang.String name) {
    this.name = name;
  }

  /**
   * 方法: 取得公众帐号TOKEN
   * 
   * @return: java.lang.String 公众帐号TOKEN
   */
  @Column(name = "TOKEN", nullable = true, length = 100)
  public java.lang.String getToken() {
    return this.token;
  }

  /**
   * 方法: 设置公众帐号TOKEN
   * 
   * @param: java.lang.String
   *           公众帐号TOKEN
   */
  public void setToken(java.lang.String token) {
    this.token = token;
  }

  /**
   * 方法: 取得公众微信号
   * 
   * @return: java.lang.String 公众微信号
   */
  @Column(name = "number", nullable = true, length = 100)
  public java.lang.String getNumber() {
    return this.number;
  }

  /**
   * 方法: 设置公众微信号
   * 
   * @param: java.lang.String
   *           公众微信号
   */
  public void setNumber(java.lang.String number) {
    this.number = number;
  }

  /**
   * 取得原始id
   * 
   * @return
   */
  @Column(name = "orginalId", length = 50)
  public java.lang.String getOriginalId() {
    return originalId;
  }

  /**
   * 设置取得原始id
   * 
   * @param originalId
   */
  public void setOriginalId(java.lang.String originalId) {
    this.originalId = originalId;
  }

  /**
   * 方法: 取得公众号类型
   * 
   * @return: java.lang.String 公众号类型
   */
  @Column(name = "TYPE", nullable = true, length = 50)
  public java.lang.String getType() {
    return this.type;
  }

  /**
   * 方法: 设置公众号类型
   * 
   * @param: java.lang.String
   *           公众号类型
   */
  public void setType(java.lang.String type) {
    this.type = type;
  }

  /**
   * 方法: 取得电子邮箱
   * 
   * @return: java.lang.String 电子邮箱
   */
  @Column(name = "EMAIL", nullable = true, length = 200)
  public java.lang.String getEmail() {
    return this.email;
  }

  /**
   * 方法: 设置电子邮箱
   * 
   * @param: java.lang.String
   *           电子邮箱
   */
  public void setEmail(java.lang.String email) {
    this.email = email;
  }

  /**
   * 方法: 取得公众帐号描述
   * 
   * @return: java.lang.String 公众帐号描述
   */
  @Column(name = "DESCRIPTION", nullable = true, length = 500)
  public java.lang.String getDescription() {
    return this.description;
  }

  /**
   * 方法: 设置公众帐号描述
   * 
   * @param: java.lang.String
   *           公众帐号描述
   */
  public void setDescription(java.lang.String accountdesc) {
    this.description = accountdesc;
  }

  /**
   * 方法: 取得公众帐号APPID
   * 
   * @return: java.lang.String 公众帐号APPID
   */
  @Column(name = "APPID", nullable = true, length = 200)
  public java.lang.String getAppid() {
    return this.appid;
  }

  /**
   * 方法: 设置公众帐号APPID
   * 
   * @param: java.lang.String
   *           公众帐号APPID
   */
  public void setAppid(java.lang.String appid) {
    this.appid = appid;
  }

  /**
   * 方法: 取得公众帐号APPSECRET
   * 
   * @return: java.lang.String 公众帐号APPSECRET
   */
  @Column(name = "APPSECRET", nullable = true, length = 500)
  public java.lang.String getAppsecret() {
    return this.appsecret;
  }

  /**
   * 方法: 设置公众帐号APPSECRET
   * 
   * @param: java.lang.String
   *           公众帐号APPSECRET
   */
  public void setAppsecret(java.lang.String appsecret) {
    this.appsecret = appsecret;
  }

  /**
   * 方法: 取得ACCESS_TOKEN
   * 
   * @return: java.lang.String ACCESS_TOKEN
   */
  @Column(name = "ACCESSTOKEN", nullable = true, length = 1000)
  public java.lang.String getAccesstoken() {
    return this.accesstoken;
  }

  /**
   * 方法: 设置ACCESS_TOKEN
   * 
   * @param: java.lang.String
   *           ACCESS_TOKEN
   */
  public void setAccesstoken(java.lang.String accesstoken) {
    this.accesstoken = accesstoken;
  }

  /**
   * 方法:获取第三方平台AppId
   * 
   * @return
   */
  @Column(name = "component_app_id", nullable = true, length = 50)
  public java.lang.String getComponentAppId() {
    return componentAppId;
  }

  public void setComponentAppId(java.lang.String componentAppId) {
    this.componentAppId = componentAppId;
  }

}
